require(["config"], function(){
	require(["jquery","template", "header", "footer","cookie"], function($,template){
		$.cookie.json = true;
		/////////////////////////////////////// 渲染显示购物车
		// 从 cookie 中读取保存的购物车信息
		let products = $.cookie("products") || [];
		// 判断购物车是否为空
		if (products.length === 0) { // 为空
			return;
		}
		// 购物车不为空，则显示出所有购物车中商品
		$(".shopping_empty").hide().siblings(".hasprods").removeClass("hide");
		// 动态渲染购物车页面数据(利用art-template模板引擎)
		const html = template("cart_temp", {products});
		$(".hasprods .prod_list").html(html);
		//////////////////////////////////////// 删除
		$(".prod_list").on("click",".del", function(){
			// 获取当前删除链接所在行
			const tr = $(this).parents(".prod_info");
			// 获取当前删除商品的id
			const id = $(tr).data("id");
			// 从数组中删除元素
			products = products.filter(function(curr){
				if (curr.id == id)
					return false;
				return true;
			});
			// 覆盖保存回cookie中
			$.cookie("products", products, {expires:10, path:"/"});
			// 从DOM树删除
			$(tr).remove();
			// 判断是否购物车为空
			if (products.length === 0) { // 空
				$(".shopping_empty").show().siblings(".hasprods").addClass("hide");
			}
		});
		// 清空购物车
		$(".clear").click(function(){
			const tr = $(".del").parents(".prod_info");
			// 获取当前删除商品的id
			const id = $(tr).data("id");
			// 从数组中删除元素
			products = products.filter(function(curr){
				if (curr.id == id)
					return false;
				return true;
			});
			$.cookie("products", products, {expires:10, path:"/"});
			$(".shopping_bottom").hide();
			location.reload();
		})
		//////////////////////////////////////// 修改数量+/-
		$(".prod_list").on("click", ".reduce,.increase", function(){
			// 获取所在行
			const tr = $(this).parents(".prod_info");
			// 商品id
			const id = $(tr).data("id");
			// 行对应商品
			let prod = null;
			products.some(function(curr){
				if (curr.id == id) {
					prod = curr;
					return true;
				}
			});
			// 修改 prod 商品的数量
			if ($(this).is(".increase")) {
				prod.amount++;
			} else {
				if (prod.amount <= 1)
					return;
				prod.amount--;
			}

			// 保存到cookie中
			$.cookie("products", products, {expires:10, path:"/"});

			// 将修改后数量填充到文本框中
			// $(tr).find(".amount").val(prod.amount);
			$("._number").val(prod.amount);
			// 显示小计
			$(tr).find(".totalPrice").text((prod.amount * prod.price).toFixed(2));
			location.reload();
			// 计算合计
			// calcTotal();
		});
		// //////////////////////手动你输入数量
		$(".prod_info").on("blur", "._number", function(){
			// 获取所在行
			const tr = $(this).parents(".prod_info");
			// 商品id
			const id = $(tr).data("id");
			// 行对应商品
			let prod = null;
			products.some(function(curr){
				if (curr.id == id) {
					prod = curr;
					return true;
				}
			});
			// 修改 prod 商品的数量
			const _amount = $(this).val();
			if (!/^[1-9]\d*$/.test(_amount)) {
				$(this).val(prod.amount);
				return;
			}
			prod.amount = Number(_amount);

			// 保存到cookie中
			$.cookie("products", products, {expires:10, path:"/"});

			// 显示小计
			$(".prod_info").find(".totalPrice").text((prod.amount * prod.price).toFixed(2));
			 location.reload();
			// 计算合计
			// calcTotal();
		});
		////////////////////////////////////////// 全选
		$(".ck_all").click(function(){
			// 获取当前“全选”框的选中状态
			// const status = this.checked; // 原生JS
			// const status = $(this).attr("checked") // <==> getAttribute("checked")
			const status = $(this).prop("checked") // <==> .checked
			// 将所有商品行前复选框选中状态设置为与 "全选" 一致
			$(".ck_prod").prop("checked", status);

			// // 计算合计
			// calcTotal();
		});
		// 部分选中
		$(".ck_prod").click(function(){
			// 当全部选中时，”全选“复选框勾选，否则取消勾选
			$(".ck_all").prop("checked", $(".ck_prod:checked").length === products.length);

			// // 计算合计
			// calcTotal();
		});
		// 定义函数，计算合计金额，在修改数量、删除、选中时都会计算合计，所以定义函数复用
		function calcTotal() {
			let sum = 0;
			$(".ck_prod:checked").each(function(index, element){
				// 当前遍历到行的小计
				const _sub = Number($(element).parents(".prod_info").find(".totalPrice").text())
				// 累加到总计
				sum += _sub;
			});
			// 显示合计金额
			$(".cart_tab tfoot td:eq(1)").text(sum.toFixed(2));
		}
		if(Number($(".zongji").text().slice(1)) >= 168){
			$(".sr_bottom span").text("订单参与免运费促销");
		}
		$(".sub").click(function(){
            location="/html/confirm.html";
        })
	});
});